function init() {
    //#region 使用 Sequelize 连接 SQLite 数据库

    const { Sequelize, DataTypes } = require('sequelize');

    (async function () {
        // 方法 1: 传递一个连接 URI
        // const sequelize = new Sequelize('sqlite::memory:') // Sqlite 示例
        // const sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname') // Postgres 示例

        // 方法 2: 分别传递参数 (sqlite)
        const sequelize = new Sequelize({
            dialect: 'sqlite',
            storage: './test.db'
        });

        // try {
        //     await sequelize.authenticate();
        //     console.log('Connection has been established successfully.');
        // } catch (error) {
        //     console.error('Unable to connect to the database:', error);
        // }

        const User = sequelize.define("user", {
            // 在这里定义模型属性
            username: {
                type: DataTypes.STRING,
                allowNull: false
            },
            email: {
                type: DataTypes.STRING
                // allowNull 默认为 true
            }
        }, {
            timestamps: false,  //去除createAt updateAt
            freezeTableName: true,  //使用自定义表名
            // 实例对应的表名
            tableName: 'user',
            // 如果需要sequelize帮你维护createdAt,updatedAt和deletedAt必须先启用timestamps功能
            // 将createdAt对应到数据库的created_at字段
            createdAt: 'created_at',
            // 将updatedAt对应到数据库的updated_at字段
            updatedAt: 'updated_at',
            //And deletedAt to be called destroyTime (remember to enable paranoid for this to work)
            deletedAt: false, //'deleted_at',
            //删除数据时不删除数据，而是更新deleteAt字段 如果需要设置为true，则上面的deleteAt字段不能为false，也就是说必须启用
            paranoid: false
        });
        User.removeAttribute("id");
        // 同步表结构
        // await User.sync({ force: true });
        // 一次同步所有模型
        // await sequelize.sync({ force: true });
        // console.log(User === sequelize.models.user)

        /////////////////////////增加
        // const lisi = await User.create({username: '李四', email: "12019281672@qq.com"})
        // console.log(lisi.username)

        /////////////////////////删除
        // const users = await User.findAll();
        const users = await User.findAll(
            {
                where: {
                    username: "李四"
                }
            }
        );
        console.log(users.every(user => user instanceof User)); // true
        console.log("All users:", JSON.stringify(users, null, 2));

        console.log(users[0].username)
    })()

    //#endregion
}

module.exports = { init };
